/*
 * Copyright (c) 2013, 5 Idiots. All rights reserved.
 */
package safari.model.sell;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import safari.model.common.ListVO;
import safari.model.common.PagingBean;
import safari.model.member.MemberVO;
/**
 * SellBoardServiceImpl 클래스
 * @author Harry
 *
 */
public class SellBoardServiceImpl implements SellBoardService {
	private SellBoardDao sellBoardDao;
	public SellBoardServiceImpl(SellBoardDao sellBoardDao){
		this.sellBoardDao=sellBoardDao;
	}
	/**
	 * 판매 글을 작성하는 메서드이다. 글 등록 성공시 글 상세보기 페이지로 이동한다.
	 */
	@Override
	public SellBoardVO writeContent(SellBoardVO svo) throws SQLException {
		sellBoardDao.insertContent(svo);
		return svo=sellBoardDao.selectContent(svo.getSellNo());
	}
	/**
	 * 판매 글을 삭제하는 메서드이다. 글 삭제 성공시
	 *  업로드 했던 파일도 삭제되고
	 *  글 삭제 결과 페이지로 이동한다.
	 */
	@Override
	public void deleteContent(SellBoardVO svo) throws SQLException {
		sellBoardDao.deleteContent(svo);
		if(!svo.getDestFileName().isEmpty()){
		sellBoardDao.deleteFileName(svo.getDestFileName());
		}
	}

	@Override
	public SellBoardVO updateContent(SellBoardVO svo) throws SQLException {
		sellBoardDao.updateContent(svo);
		return svo=sellBoardDao.selectContent(svo.getSellNo());
	}
	/**
	 * 판매 글 수정 페이지를 보여주는 메서드
	 */
	@Override
	public SellBoardVO updateView(int sellNo) throws SQLException {
		return sellBoardDao.selectContent(sellNo);
	}

	@Override
	public ListVO findByTitle(String keyword) throws SQLException {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public ListVO findByContent(String keyword) throws SQLException {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public ListVO findByProductName(String keyword) throws SQLException {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public ListVO findByTitleAndContent(String keyword) throws SQLException {
		// TODO Auto-generated method stub
		return null;
	}
	/**
	 * 상세 글 보기 페이지를 불러오는 메서드.
	 * 글 작성자가 상세 글 보기 페이지를 불러올때는 조회수를 증가시키지 않는다.
	 */
	@Override
	public SellBoardVO showContent(int sellNo, String id) throws SQLException {
		// 조회수를 1 증가 시키는 메서드
		Map updateHitsVO=new HashMap();
		updateHitsVO.put("sellNo", sellNo);
		updateHitsVO.put("id", id);
		sellBoardDao.updateHits(updateHitsVO);
		// 상세 글 보기 페이지를 불러오는 메서드
		return sellBoardDao.selectContent(sellNo);
	}
	/**
	 * 게시판 목록을 보여주는 메서드
	 */
	@Override
	public ListVO getContentList(int nowPage) throws SQLException {
		// 게시판 목록 불러오기
		List<SellBoardVO>list=sellBoardDao.selectContentList(nowPage);
		// 총 게시물 수 불러오기
		int totalContents=sellBoardDao.selectTotalContents();
		ListVO lvo=new ListVO(list, new PagingBean(totalContents, nowPage));
		return lvo;
	}
	@Override
	public void deleteFileName(String filename) throws SQLException {
		sellBoardDao.deleteFileName(filename);
		
	}

}
